home *** CD-ROM | disk | FTP | other *** search
/ Delphi Programmer's Power Pack / Delphi Volume 1.iso / e_to_l / edsspell / spellint.inc < prev    next >
Text File  |  1996-09-15  |  3KB  |  101 lines

  1. type
  2.   TChangerEntry = record
  3.     ceChar:       Char;
  4.     ceSymbol:     String[3];
  5.   end;  { TChangerEntry }
  6.  
  7. const
  8.   MaxEntries   = 35;
  9.   ChangerTable : array[1..MaxEntries] of TChangerEntry = (
  10.      (ceChar:'Γ'; ceSymbol:'A**'),
  11.      (ceChar:'σ'; ceSymbol:'A//'),
  12.      (ceChar:'┼'; ceSymbol:'A//'),
  13.      (ceChar:'µ'; ceSymbol:'A*_'),
  14.      (ceChar:'╞'; ceSymbol:'A*_'),
  15.      (ceChar:'Σ'; ceSymbol:'A*'),
  16.      (ceChar:'─'; ceSymbol:'A*'),                                           (ceChar:'α'; ceSymbol:'A_'),
  17.      (ceChar:'ß'; ceSymbol:'A/'),
  18.      (ceChar:'Ω'; ceSymbol:'E**'),
  19.      (ceChar:'δ'; ceSymbol:'E*'),
  20.      (ceChar:'Φ'; ceSymbol:'E_'),
  21.      (ceChar:'Θ'; ceSymbol:'E/'),
  22.      (ceChar:'╔'; ceSymbol:'E/'),
  23.      (ceChar:'ε'; ceSymbol:'I**'),
  24.      (ceChar:'∩'; ceSymbol:'I*'),
  25.      (ceChar:'∞'; ceSymbol:'I_'),
  26.      (ceChar:'φ'; ceSymbol:'I/'),
  27.      (ceChar:'⌠'; ceSymbol:'O**'),
  28.      (ceChar:'÷'; ceSymbol:'O*'),
  29.      (ceChar:'≥'; ceSymbol:'O_'),
  30.      (ceChar:'╓'; ceSymbol:'O*'),
  31.      (ceChar:'≤'; ceSymbol:'O/'),
  32.      (ceChar:'√'; ceSymbol:'U**'),
  33.      (ceChar:'ⁿ'; ceSymbol:'U*'),
  34.      (ceChar:'∙'; ceSymbol:'U_'),
  35.      (ceChar:'▄'; ceSymbol:'U*'),
  36.      (ceChar:'·'; ceSymbol:'U/'),
  37.      (ceChar:' '; ceSymbol:'Y*'),
  38.      (ceChar:#158; ceSymbol:'P/'),
  39.      (ceChar:'â'; ceSymbol:'F/'),
  40.      (ceChar:'╟'; ceSymbol:'C/'),
  41.      (ceChar:'τ'; ceSymbol:'C/'),
  42.      (ceChar:'±'; ceSymbol:'N/'),
  43.      (ceChar:'╤'; ceSymbol:'N*'));
  44.  
  45. function ToDictionaryFormat (St: string): string;
  46.   {-prepares a word for dictionary}
  47. var
  48.   i:        integer;
  49.   SavePos:  byte;
  50.   CharSt:   string[1];
  51. begin
  52.   St := UpperCase (St);
  53.   for i := 1 to MaxEntries do
  54.   begin
  55.     CharSt  := Char (ChangerTable[i].ceChar);
  56.     SavePos := Pos (CharSt, St);
  57.     if SavePos > 0 then
  58.     begin
  59.       Delete (St, SavePos, 1);
  60.       Insert (ChangerTable[i].ceSymbol, St, SavePos);
  61.     end;  { if... }
  62.   end;  { next i }
  63.   Result := St;
  64. end;  { ToDictionaryFormat }
  65.  
  66. function FromDictionaryFormat (St: string): string;
  67.   {-converts a word from the dictionary format}
  68. var
  69.   i:        integer;
  70.   SavePos:  byte;
  71. begin
  72.   St := UpperCase (St);
  73.   for i := 1 to MaxEntries do
  74.   begin
  75.     SavePos := Pos (ChangerTable[i].ceSymbol, St);
  76.     if SavePos > 0 then
  77.     begin
  78.       Delete (St, SavePos, 1);
  79.       Insert (ChangerTable[i].ceChar, St, SavePos);
  80.     end;  { if... }
  81.   end;  { next i }
  82.   Result := St;
  83. end;  { FromDictionaryFormat }
  84.  
  85. function AdjustCase (St, PictureSt: String): String;
  86.   {-adjust the case of St according to the case of the PictureSt}
  87.   {-usually used for suggest words using original word as PictureSt}
  88. begin
  89.   if PictureSt[2] = UpCase (PictureSt[2]) then
  90.   begin
  91.     {assume uppercase}
  92.     Result := UpperCase (St);
  93.   end {:} else
  94.   begin
  95.     St := LowerCase (St);
  96.     if PictureSt[1] = UpCase (PictureSt[1]) then
  97.       St[1] := UpCase (St[1]);
  98.     Result := St;
  99.   end;  { else }
  100. end;  { AdjustCase }
  101.